//
//  LPFUserAccountTools.swift
//  WeiBo
//
//  Created by mac on 16/4/19.
//  Copyright © 2016年 mac. All rights reserved.
//

import UIKit

class LPFUserAccountTools: NSObject {

    // 全局访问点
    static let sharedTools: LPFUserAccountTools = LPFUserAccountTools()
    
    var userAccount: LPFUserAccountModel?
    
    //路径
    let path = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")
    
    override init() {
        super.init()
        userAccount = getUserAccount()
    }
    
    // MARK: - 保存数据
    func saveUserAccount(account: LPFUserAccountModel){
        // 当保存数据的时候需要先给我们的userAccount 赋值
        userAccount = account
        NSKeyedArchiver.archiveRootObject(account, toFile: path)
    }
    
    // MARK: - 读取数据
    func getUserAccount() -> LPFUserAccountModel?{
        let result = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as? LPFUserAccountModel
//        print(path)
        return result
    }
    
    
    // MARK: - 判断我们的访问令牌是否过期
    var isExpires: Bool{
        // 获取我们过期的时间 和当前时间比较
        let date = userAccount?.expires_Date
        // 没有过期
        if date?.compare(NSDate()) == NSComparisonResult.OrderedDescending{
            return false
        }else{
            return true
        }
    }
    
    // MARK: - 访问令牌
    var accessToken: String?{
        //如果保存了数据
        if userAccount?.access_token != nil{
            //没有
            if !isExpires{
                return userAccount?.access_token
            }else{
                //过期了
                return nil
            }
        }else{
            // 当我们第一次登陆 获取访问令牌的时候 没有数据
            return nil
        }
    }
    
    // MARK: - 判断用户是否登录
    var isLogin: Bool{
        if accessToken != nil{
            return true
        }else{
            return false
        }
    }
}
